package com.neusoft.mapper;

import com.neusoft.entity.CheckRequest;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.w3c.dom.ls.LSInput;

import java.util.Date;
import java.util.List;


/**
 * @author akemihomurasama
 */
@Mapper
public interface CheckRequestMapper {
    /**
     * 添加检查申请
     *
     * @param checkRequest 检查申请
     */
    void addCheck(CheckRequest checkRequest);

    /**
     * 根据患者id查询患者已开立的检查申请
     *
     * @param registerId 患者id
     * @return 申请列表
     */
    List<CheckRequest> queryCheckReqListById(int registerId);

    /**
     * 根据患者id和医技项目id列表更新申请为已付款
     *
     * @param registerId 患者id
     * @param techIdList 医技项目id
     */
    void updateReq(@Param("registerId") int registerId, @Param("techIdList") List<Integer> techIdList);

    /**
     * 根据检查申请的状态查询申请信息
     *
     * @param checkState 检查申请的状态
     * @return 申请列表
     */
    List<CheckRequest> queryReqByState(String checkState);

    /**
     * 根据患者id和检查申请状态d查询患者的检查申请
     *
     * @param registerId 患者id
     * @param checkState 检查申请状态
     * @return 检查申请列表
     */
    List<CheckRequest> queryCheckByIdAndState(@Param("registerId") int registerId, @Param("checkState") String checkState);

    /**
     * 更新患者检查申请信息
     *
     * @param checkRequest 检查申请信息
     */
    void updateCheckReq(CheckRequest checkRequest);

    /**
     * 根据检查申请id查询检查申请
     *
     * @param checkRequestId 检查申请id
     * @return 检查申请信息
     */
    CheckRequest queryCheckReqById(Integer checkRequestId);

    /**
     * 根据检查申请id列表修改检查申请状态
     * @param checkState 申请状态
     * @param checkRequestIdList 申请id列表
     */
    void updateReqByIdList(@Param("checkRequestIdList") List<Integer> checkRequestIdList, String checkState);
}
